######################################################
######################################################
######### Required libraries and functions
######################################################
######################################################


library(msm)
library(MASS)
library(distr)
library(truncnorm)
library(VGAM)
library(devtools)

rm(list=ls())


source('Functions_Media.R')

##Set to TRUE for a long run and to save output
longrun<-FALSE
save.out<-FALSE


######################################################
######################################################
######### Load and prepare data
######################################################
######################################################
  CongressNum <- 112
load('media.mat')
load('dtm_112')
load('votemat_112')
nomdata<-read.csv('dwnom112.csv')


dtm2<-rbind(media.mat,dtm2)
unique.dtm<-sort(unique(as.vector(dtm2)))

seq.vec<-c(-1:(max(dtm2)+2))
for(i in 2:length(seq.vec)) ifelse(seq.vec[i]%in%unique.dtm, seq.vec[i]<-seq.vec[i-1]+1,seq.vec[i]<-seq.vec[i-1] )

rank.mat<-0*dtm2
for(i in 1:nrow(dtm2)) for(j in 1:ncol(dtm2)) rank.mat[i,j]<-seq.vec[dtm2[i,j]+2]


empir.all<-0


votes.mat.med<-rbind(.5,.5,.5,votes.mat)

dtm3<-rbind(t(votes.mat.med),t(dtm2))
missing.mat.use<-rbind(t(votes.mat.med==0.5),t(dtm2)*0)*1



######################################################
######################################################
######### Analyze Results
######################################################
######################################################

if(longrun){
	scale.media<-sparsemix_media(dtm3,missing.mat.use, max.loop=1000, burnin=2000, empir.cdf=empir.all, cutoff.seq=seq.vec, save.each=FALSE, thin.save=10, max.optim=200)
	} else {
	scale.media<-sparsemix_media(dtm3,missing.mat.use, max.loop=500, burnin=500, empir.cdf=empir.all, cutoff.seq=seq.vec, save.each=FALSE, thin.save=10, max.optim=200)
}

	if(save.out) save(scale.media,file="scale.media")

